package com.dms.modules.product.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dms.modules.product.entity.Product;
import com.dms.modules.product.entity.ProductCategory;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 商品分类Mapper接口
 */
@Mapper
public interface ProductCategoryMapper extends BaseMapper<ProductCategory> {
    
    /**
     * 获取分类树结构
     */
    List<ProductCategory> selectCategoryTree();
    
    /**
     * 获取指定维度的分类
     */
    List<ProductCategory> selectCategoriesByDimension(@Param("dimension") String dimension);
    
    /**
     * 获取分类商品列表
     */
    IPage<Product> selectCategoryProducts(Page<Product> page, @Param("categoryId") Long categoryId);
    
    /**
     * 获取多级分类筛选商品列表
     */
    IPage<Product> selectFilteredCategoryProducts(Page<Product> page, @Param("categoryIds") List<Long> categoryIds);
    
    /**
     * 检查分类下是否有商品
     */
    Integer countProductsByCategory(@Param("categoryId") Long categoryId);
} 